package load

import (
	"bufio"
	"fmt"
	"os"
	"util"
)

/**
 * @Author：落叶知秋
 * @Date：15:20 2022/6/16
 * @note：
 **/

type Loadmap struct {
	player   util.Sprite
	ghosts   []*util.Ghost
	Lives    int
	NumDots  int
	Score    int //分数
	Num_Pill int
}

var Maze []string

// Loadmaze 从文件读取迷宫放到一个字符串切片中
func (this *Loadmap) Loadmaze(file string) (err error) {

	f, err := os.Open(file) //返回一个可被读取的文件的对象
	defer f.Close()         //延时关闭
	//判断是否找到了
	if err != nil {
		fmt.Println("loadmaze  os.Open() err", err)
		return
	}
	scanner := bufio.NewScanner(f) //Scanner是一个接口，这个接口提供了很多方法可以解析f
	for scanner.Scan() {           //每行扫描，遇到错误或者结束停止
		line := scanner.Text() //返回最近一次扫描得到的字符串
		Maze = append(Maze, line)
	}
	//遍历迷宫中的每个角色，当它找到一个' P '时创建一个新玩家
	for row, line := range Maze {
		for col, char := range line {
			switch char {
			case 'P': //碰到玩家的情况
				this.player = util.Sprite{row, col, row, col}
			case 'G': //碰到鬼的情况
				gh := util.Ghost{util.Sprite{row, col, row, col},
					util.GhostStatusNormal,
				}
				this.ghosts = append(this.ghosts, &gh)
			case '.':

				this.NumDots++

			}
		}
	}
	return
}
